﻿#pragma once

class FJsonObject;

/// 负责根据一定的规则/数据，创建曲线资产
class CURVEASSETUTILITY_API FCurveAssetCreator
{
public:
	/// 根据Json文件路径，创建所有曲线资产
	static bool CreateAllCurveAssetsFromJsonFile(const FString& InJsonFilePath);

private:
	/// 从Json字符串创建所有曲线资产
	static bool CreateAllCurveAssetFromJsonString(const FString& InJsonString);

	/// 从单个Json数据创建一条曲线资产
	static bool CreateOneCurveAssetFromJsonData(const TSharedPtr<FJsonObject>& InJsonData);

	/// 将UObject对象保存为UAsset资产
	static bool SaveObjectToAsset(UObject& InObject, const FString& InAssetPath);
};
